#ifndef IMANAGER_H_INCLUDED
#define IMANAGER_H_INCLUDED

#include "XGE_Common.h"

namespace XGE
{
    class IManager
    {
        protected:
            Ogre::String* ptrName;
            bool bInit;

        public:
            IManager(Ogre::String& nName) { ptrName = &nName; };
            virtual ~IManager() {};

            //Returns if this manager has been initialised yet
            bool _initialized() { return bInit; };

            //Manager initialisation
            virtual bool init() = 0;
            //Update
            virtual bool _update() = 0;
            //Returns the name of the manager
            virtual const Ogre::String& getName(void) { return *ptrName; };
    };
}

#endif // IMANAGER_H_INCLUDED
